RR * START NACH RESET * * Beispiel fuer Maschinenprogramne EEE * BOOT Eau 9 }2:Cass-Boot D.K. CASINI EQU $02 ;Vektor Init. nach RESET SDLSTL EBU $230 ;Zeiger auf D-List VEOUNT EQU $D40B ;Rasterzeile COLBK EQU $DO1A ;Hintergrund * DRG $0600 * LDA #2 Cass-Boot STA BOOT vortaeuschen LDA #START:L Start-Adresse STA CASINI eintragen LDA #START:H STA CASINI+ * * Einsprung nach RESET * START LDA #DLIST:L Display-List STA SDLSTL aktivieren LDA #DLIST:H jetzt MSB STA SDLSTL+1 ENDLOS LDA VCOUNT und ein wenig STA COLBK Farbe JMP ENDLOS * * einfache Displaylist + DLIST DFB $70,$70,$70,$70,$70,$70 DFB $70,%70,$70,$70,$70,$46 DFB SCR:L,SCR:H,$41 DFW DLIST SCR ASC % PROGRAMM LAEUFT... %107 REM RR 11 REM * NEUSTART BEI RESET 12 REM * 13 REM * P. FINZEL 1986 14 REM GrRs 20 IF PEEK(1536)=32 THEN 30 21 FOR A=1536 TO 1591:READ D 22 POKE A,D:NEXT A 23 DATA 32,255,255,162,0,142,47,2 24 DATA 169,11,157,66,3,169,50,157 25 DATA 68,3,169,6,157,69,3,169,6 26 DATA 157,72,3,169,0,157,73,3,32 27 DATA 86,228,169,0,133,84,133,85 28 DATA 133,86,169,13,141,74,3,96 29 DATA 125,29,29,82,85,78 30 IF PEEK(1538)<>255 THEN 40 31 POKE 1537,PEEK(12) 32 POKE 1538,PEEK(13) 33 POKE 12,0:POKE 13,6 40 POKE 842,12 100 GRAPHICS 2+16: POSITION 0,5 110 ? #6; "PROGRAMM LAEUFT „..." 120 FOR I=0 TO 255:POKE 708,1:NEXT I 130 60T0 120SE EEE ee ae en nee 20 n 2 * * BASIC-RUN BEI RESET * * PETER FINZEL 1986 SE TS SEE Eee 2272222 n * 10CB-Konstante c1oV EQU $E456 ICCoM EQU $342 ICBAL EQU $344 ICBAH EQU $345 ICBLL EQU $348 ICBLH EQU $349 ICAXI EQU $34A CPBIN Eau 11 * * Sonstige Register * ROWCRS EAU $54 Cursor-leile COLCRS EQU $55 Cursor-Spalte SDMCTL EQU 559 DMA-Register (5) * * Programm in PAGE 6 * ORG $600 JSR $FFFF Platz #. DOS-Init. LDX #0 "RUN’ am oberen STX SDMCTL Bild aus LDA #CPBIN Rand des Bild- STA ICCOM,X schirmes aus- LDA #RUN:L STA ICBAL,X LDA #RUN:H Strings in IOCB STA ICBAH,X LDA #RUNEND-RUN Laenge STA ICBLL,X LDA #0 STA ICBLH,X JSR CIOV CIO aufrufen LDA #0 Cursor nach 5STA ROWERS links oben STA COLCRS stellen STA COLCRS+1 LDA #$0D Forced-Read STA ICAX1 Eingabe-Modus RTS * RUN DFB $7D,$1D,$1D 'Clear Screen’ ASC "RUN" Cursor 2x unten RUNEND EQU *100 REM * MEMLO-VERSCHIEBUNG 110 REM * ERZEUGT AUTORUN.SYS 120 REM 130 REM * P. FINZEL 140 ? "Untere Speichergrenze bei:";:IN PUT MEMLO 150 MH=INT(MEMLO/256) 160 ML=MEMLO-MH#+256 170 DIM D$(B0):OPEN #1,8,0,"D:AUTORUN. Sys” 180 ? "AUTORUN.SYS wird generiert...": ? :FLAG=O 190 READ D$:READ P: IF D$="*" THEN 290 200 8=0:7. "#"5 210 FOR I=1 TO LEN(D$) STEP 2 220 H=ASC(DS(I,I))-48:L=ASC(DE(IHL, Ir ))-48 230 D=(H-(HI9)#7)HI6+L-(LI9)*7:8=5+D 240 IF FLAG=1 THEN 270 250 IF I=13 THEN D=ML 260 IF I=15 THEN D=MH:FLAG=I 270 PUT #1,D:NEXT I:IF 8=P THEN 190 280 ? :? ı? "DATENFEHLER IN ZEILE ";PE EK(183) +PEEK (184) #256: CL0SE #1:5T0P 290 REM * FILE SCHLIESSEN 300 CLOSE #1 310 ? »? »? "AUTORUN.SYS ordnungsgenae ss erzeugt!" 320 END 1100 DATA FFFF00062706004020FFFFADOO0& 8DE702AD01068D,2041 1110 DATA E80260A50C8D0305A50D8D0405A9 02850CA906850D,1623 1120 DATA 4C050600FFFFE202E3021206,107 8 1130 DATA *,0EIS SEITE ET Eee ee een * Speicherplatz-Reservierung m. MEMLO * * Aufzeichnen: als AUTORUN.SYS * von $600 bis $627 * und $2E2 bis $2E3 (mit Append!) * Assembler: ATMAS-II LESS SEE ET EEE ET E ETETE TE ETeeE Teen * DOSINI EBU $0C ;DOS-Init nach RESET MEMLO EQU $2E7 ;untere Speichergrenze * DRG $600 * LOWRAM DFW $4000 neues MEMLD (nird ersetzt) * * Einsprung nach RESET * wird in die DOS-Initialsisierung * eingebunden * NEUINI JSR $FFFF Platz fuer DOSINI KALT LDA LOWRAM neue MEMLO-Adresse STA MEMLO eintragen (waehrend LDA LOWRAM+i RESET!) STA MEMLO+I RTS das war's! * * Einbindung der Routine in den * RESET-Ablauf * s TART LDA DOSINI DOS-Init in leeren 5TA NEUINI+1 JSR eintragen LDA DOSINI+i jetzt MSB 5TA NEUINI+2 LDA #NEUINI:L neues DOSINI STA DOSINI eintragen LDA #NEUINI:H STA DOSINI+1 JMP KALT MEMLO vorbesetzen * * File-Init Adresse fuer AUTDRUN.SYS * ORG $2E2 DFW START